home *** CD-ROM | disk | FTP | other *** search
- ⓪ IMPLEMENTATION MODULE InOut; (* V#040 *)⓪ (*$Y+,R-,F-*)⓪ ⓪ (*⓪"18.7.87: Read... setzen termCH richtig (? nicht getestet!);⓪,Wenn bei Write EOL ausgegeben wird, wird automatisch LF mit⓪,ausgegeben, leider geht's nicht bei WriteString.⓪"1.4.88: Done wird bei allen exportierten Procs gesetzt. Bei EOF⓪,wird Done FALSE, aber es kommt keine Fehlermeldung mehr.⓪,Bei Ausgaben wird bei Fehlern Done FALSE, Fehlermeldung kommt⓪,weiterhin.⓪"5.6.88: InOutBase/InOutFile neu. Dadurch wird erreicht, daß die File-⓪,Funktionen nicht eingebunden werden, wenn keine Redirection⓪,verwendet wird.⓪,Wenn bei der Ausgabe auf ein File abgebrochen wird, wird nicht⓪,mehr die Ausgabe auf das Window wiederholt.⓪"27.6.88: skipLF wird bei Write wieder (?) richtig ausgewertet.⓪"17.9.88: ReadReal/Card/usw, korrigiert (rdWLR zerstörte A0 -> Endlosschleife⓪,und Zeiger auf Funktionen mit LEA statt MOVE.L geladen)⓪,ReadNum/ReadLNum korrigiert - auch Korrektur in InOutFile !⓪"08.8.89: Termination-Stack entfernt (nun wird Default-Stack verwendet)⓪"20.7.89: ReadLReal neu, ReadLine heißt nun ReadFromLine⓪ *)⓪ ⓪ FROM SYSTEM IMPORT ASSEMBLER;⓪ FROM SYSTEM IMPORT WORD, LONGWORD, ADR;⓪ ⓪ IMPORT StrConv, Convert;⓪ ⓪ FROM PrgCtrl IMPORT SetEnvelope, EnvlpCarrier, CatchProcessTerm, TermCarrier,⓪(TermProcess;⓪ ⓪ FROM MOSGlobals IMPORT MemArea, OutOfMemory;⓪ ⓪ FROM Strings IMPORT Append, Length, Empty, MaxChars;⓪ ⓪ FROM InOutBase IMPORT consIn, consOut, eop, level, inLev, outLev;⓪ ⓪ IMPORT InOutBase, InOutFile;⓪ ⓪ ⓪ VAR ok, skiplf: BOOLEAN;⓪ ⓪ PROCEDURE ReadFromLine (VAR s: ARRAY OF CHAR);⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(TST consIn⓪(BEQ d1⓪(MOVE #1,Done⓪(MOVE.B #EOL,termCH⓪(MOVE.L InOutBase.ReadFromLine,A0⓪(JMP (A0)⓪%d1 MOVE.L InOutBase.fReadFromLine,A0⓪(JSR (A0)⓪(MOVE InOutBase.done,Done⓪(MOVE.W InOutBase.termCh,termCH⓪$END⓪"END ReadFromLine;⓪"(*$L=*)⓪ ⓪ PROCEDURE ReadToken (VAR s: ARRAY OF CHAR); (* Liest ein Wort *)⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(TST consIn⓪(BEQ d1⓪(MOVE #1,Done⓪(MOVE.B #EOL,termCH⓪(MOVE.L InOutBase.ReadToken,A0⓪(JMP (A0)⓪%d1 MOVE.L InOutBase.fReadToken,A0⓪(JSR (A0)⓪(MOVE InOutBase.done,Done⓪(MOVE.W InOutBase.termCh,termCH⓪$END⓪"END ReadToken;⓪"(*$L=*)⓪ ⓪ PROCEDURE ReadLn;⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(MOVE.B #EOL,termCH⓪(TST consIn⓪(BEQ d1⓪(MOVE #1,Done⓪(MOVE.L InOutBase.ReadLn,A0⓪(JMP (A0)⓪%d1 MOVE.L InOutBase.fReadLn,A0⓪(JSR (A0)⓪(MOVE InOutBase.done,Done⓪$END⓪"END ReadLn;⓪"(*$L=*)⓪ PROCEDURE EndOfLine (skip: BOOLEAN): BOOLEAN;⓪"BEGIN⓪"END EndOfLine;⓪ ⓪ ⓪ PROCEDURE Read (VAR c: CHAR);⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(TST consIn⓪(BEQ d1⓪(MOVE #1,Done⓪(MOVE.L InOutBase.Read,A0⓪(JMP (A0)⓪%d1 MOVE.L InOutBase.fRead,A0⓪(JSR (A0)⓪(MOVE InOutBase.done,Done⓪$END⓪"END Read;⓪"(*$L=*)⓪ ⓪ ⓪ PROCEDURE KeyPressed (): BOOLEAN;⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(TST consIn⓪(BEQ t0⓪(MOVE #1,Done⓪(MOVE.L InOutBase.KeyPressed,A0⓪(JMP (A0)⓪%t0 MOVE.L InOutBase.fKeyPressed,A0⓪(JSR (A0)⓪(MOVE InOutBase.done,Done⓪$END⓪"END KeyPressed;⓪"(*$L=*)⓪ ⓪ PROCEDURE CondRead (VAR c: CHAR; VAR valid: BOOLEAN);⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(TST consIn⓪(BEQ d1⓪(MOVE #1,Done⓪(MOVE.L InOutBase.CondRead,A0⓪(JMP (A0)⓪%d1 MOVE.L InOutBase.fCondRead,A0⓪(JSR (A0)⓪(MOVE InOutBase.done,Done⓪$END⓪"END CondRead;⓪"(*$L=*)⓪ ⓪ PROCEDURE BusyRead (VAR c: CHAR);⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(LINK A5,#0⓪(SUBQ.L #2,A7⓪(MOVE.L A7,(A3)+⓪(JSR CondRead⓪(ADDQ.L #2,A7⓪(UNLK A5⓪$END⓪"END BusyRead;⓪"(*$L=*)⓪ ⓪ PROCEDURE FlushKbd;⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(LINK A5,#0⓪(TST.W consIn⓪(BEQ ende⓪&c JSR KeyPressed⓪(TST -(A3)⓪(BEQ ende⓪(CLR.W -(A7)⓪(MOVE.L A7,(A3)+⓪(JSR Read⓪(ADDQ.L #2,A7⓪(BRA c⓪&ende⓪(UNLK A5⓪$END⓪"END FlushKbd;⓪"(*$L=*)⓪ ⓪ PROCEDURE inp (VAR s:ARRAY OF CHAR);⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(MOVE #1,Done⓪(MOVE.B #EOL,termCH⓪(LINK A5,#0⓪(MOVE.L InOutBase.ReadString,A0⓪(JSR (A0)⓪(UNLK A5⓪$END⓪"END inp;⓪"(*$L=*)⓪ ⓪ PROCEDURE ReadString (VAR s: ARRAY OF CHAR);⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(TST consIn⓪(BEQ d1⓪(MOVE #1,Done⓪(MOVE.B #EOL,termCH⓪(MOVE.L InOutBase.ReadString,A0⓪(JMP (A0)⓪%d1 MOVE.L InOutBase.fReadString,A0⓪(JSR (A0)⓪(MOVE InOutBase.done,Done⓪(MOVE.W InOutBase.termCh,termCH⓪$END⓪"END ReadString;⓪"(*$L=*)⓪ ⓪ PROCEDURE rdWLR;⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(MOVE.L InOutBase.fRdWLR,A2⓪(JSR (A2)⓪(MOVE.W InOutBase.done,Done⓪(MOVE.W InOutBase.termCh,termCH⓪$END⓪"END rdWLR;⓪"(*$L=*)⓪ ⓪ PROCEDURE rdWord;⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(TST consIn⓪(BEQ d1⓪(LINK A5,#-18⓪(MOVE.L A7,(A3)+⓪(MOVE #17,(A3)+⓪(MOVE.L A1,-(A7)⓪(JSR inp⓪(MOVE.L (A7)+,A1⓪(MOVE.L A7,(A3)+⓪(MOVE #17,(A3)+⓪(CLR -(A7)⓪(MOVE.L A7,(A3)+⓪(MOVE.L #Done,(A3)+⓪(JSR (A1)⓪(MOVE.W -(A3),D0⓪(MOVE.L -(A3),A0⓪(MOVE.W D0,(A0)⓪(UNLK A5⓪(RTS⓪%d1 JMP rdWLR⓪$END⓪"END rdWord;⓪"(*$L=*)⓪ ⓪ PROCEDURE rdLong;⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(TST consIn⓪(BEQ d1⓪(LINK A5,#-34⓪(MOVE.L A7,(A3)+⓪(MOVE #33,(A3)+⓪(MOVE.L A1,-(A7)⓪(JSR inp⓪(MOVE.L (A7)+,A1⓪(MOVE.L A7,(A3)+⓪(MOVE #33,(A3)+⓪(CLR -(A7)⓪(MOVE.L A7,(A3)+⓪(MOVE.L #Done,(A3)+⓪(JSR (A1)⓪(MOVE.L -(A3),D0⓪(MOVE.L -(A3),A0⓪(MOVE.L D0,(A0)⓪(UNLK A5⓪(RTS⓪%d1 JMP rdWLR⓪$END⓪"END rdLong;⓪"(*$L=*)⓪ ⓪ PROCEDURE ReadCard (VAR v: CARDINAL);⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(LEA StrConv.StrToCard,A1⓪(MOVE.L InOutBase.fReadCard,A0⓪(JMP rdWord⓪$END⓪"END ReadCard;⓪"(*$L=*)⓪ ⓪ PROCEDURE ReadInt (VAR v: INTEGER);⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(LEA StrConv.StrToInt,A1⓪(MOVE.L InOutBase.fReadInt,A0⓪(JMP rdWord⓪$END⓪"END ReadInt;⓪"(*$L=*)⓪ ⓪ PROCEDURE ReadLCard (VAR v: LONGCARD);⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(LEA StrConv.StrToLCard,A1⓪(MOVE.L InOutBase.fReadLCard,A0⓪(JMP rdLong⓪$END⓪"END ReadLCard;⓪"(*$L=*)⓪ ⓪ PROCEDURE ReadLInt (VAR v: LONGINT);⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(LEA StrConv.StrToLInt,A1⓪(MOVE.L InOutBase.fReadLInt,A0⓪(JMP rdLong⓪$END⓪"END ReadLInt;⓪"(*$L=*)⓪ ⓪ PROCEDURE ReadNum (VAR v: WORD; base: CARDINAL);⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(LINK A5,#-18⓪(TST consIn⓪(BEQ d1⓪(MOVE.L A7,(A3)+⓪(MOVE #17,(A3)+⓪(JSR inp ; ReadString⓪(MOVE.W -(A3),D0⓪(MOVE.L A7,(A3)+ ; str⓪(MOVE #17,(A3)+⓪(MOVE.W D0,(A3)+ ; base⓪(CLR -(A7)⓪(MOVE.L A7,(A3)+ ; pos⓪(MOVE.L #Done,(A3)+ ; valid⓪(JSR StrConv.StrToNum⓪(MOVE.W -(A3),D0⓪(MOVE.L -(A3),A0⓪(MOVE.W D0,(A0)⓪(UNLK A5⓪(RTS⓪%d1 MOVE.L InOutBase.fReadNum,A0⓪(JSR (A0)⓪(UNLK A5⓪(MOVE.W InOutBase.done,Done⓪(MOVE.W InOutBase.termCh,termCH⓪$END⓪"END ReadNum;⓪"(*$L=*)⓪ ⓪ PROCEDURE ReadLNum (VAR v: LONGWORD; base: CARDINAL);⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(LINK A5,#-34⓪(TST consIn⓪(BEQ d1⓪(MOVE.L A7,(A3)+⓪(MOVE #33,(A3)+⓪(JSR inp ; ReadString⓪(MOVE.W -(A3),D0⓪(MOVE.L A7,(A3)+ ; str⓪(MOVE #33,(A3)+⓪(MOVE.W D0,(A3)+ ; base⓪(CLR -(A7)⓪(MOVE.L A7,(A3)+ ; pos⓪(MOVE.L #Done,(A3)+ ; valid⓪(JSR StrConv.StrToLNum⓪(MOVE.L -(A3),D0⓪(MOVE.L -(A3),A0⓪(MOVE.L D0,(A0)⓪(UNLK A5⓪(RTS⓪%d1 MOVE.L InOutBase.fReadLNum,A0⓪(JSR (A0)⓪(UNLK A5⓪(MOVE.W InOutBase.done,Done⓪(MOVE.W InOutBase.termCh,termCH⓪$END⓪"END ReadLNum;⓪"(*$L=*)⓪ ⓪ PROCEDURE ReadLReal (VAR v: LONGREAL);⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(TST consIn⓪(BEQ d1⓪(LINK A5,#-26⓪(MOVE.L A7,(A3)+⓪(MOVE #25,(A3)+⓪(MOVE.L A1,-(A7)⓪(JSR inp⓪(MOVE.L (A7)+,A1⓪(MOVE.L A7,(A3)+⓪(MOVE #25,(A3)+⓪(CLR -(A7)⓪(MOVE.L A7,(A3)+⓪(MOVE.L #Done,(A3)+⓪(JSR StrConv.StrToReal⓪(MOVE.L -(A3),D1⓪(MOVE.L -(A3),D0⓪(MOVE.L -(A3),A0⓪(MOVE.L D0,(A0)+⓪(MOVE.L D1,(A0)⓪(UNLK A5⓪(RTS⓪%d1 MOVE.L InOutBase.fReadReal,A0⓪(JMP rdWLR⓪$END⓪"END ReadLReal;⓪"(*$L=*)⓪ ⓪ PROCEDURE ReadReal (VAR r: REAL);⓪"VAR r2: LONGREAL;⓪"BEGIN⓪$r:= REAL (0);⓪$ReadLReal (r2);⓪$IF Done THEN⓪&IF ABS (r2) > MAX (REAL) THEN⓪(Done:= FALSE;⓪&ELSE⓪(r:= r2⓪&END⓪$END⓪"END ReadReal;⓪"⓪ ⓪ (* ********************************************************************** *)⓪ (* ************************ A u s g a b e ************************* *)⓪ (* ********************************************************************** *)⓪ ⓪ PROCEDURE chkOut;⓪"BEGIN⓪$ASSEMBLER⓪(MOVE consOut,D0⓪(EORI #1,D0⓪(MOVE D0,Done⓪$END⓪"END chkOut;⓪"⓪ PROCEDURE Write (c: CHAR);⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(MOVE #1,Done⓪(MOVE.B -2(A3),D0⓪(TST skiplf⓪(BEQ d1⓪(CMPI.B #$0A,D0⓪(BEQ d4⓪%d1 CMPI.B #$0D,D0⓪(BNE d2⓪(JSR WriteLn⓪(MOVE #1,skiplf⓪(RTS⓪%d2 CLR skiplf⓪(TST consOut⓪(BNE d3⓪(MOVE.L InOutBase.fWrite,A0⓪(JSR (A0)⓪(JMP chkOut⓪%d3 MOVE.L InOutBase.Write,A0⓪(JMP (A0)⓪%d4 CLR skiplf⓪$END;⓪"END Write;⓪"(*$L=*)⓪ ⓪ ⓪ PROCEDURE WriteLn;⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(MOVE #1,Done⓪(CLR skiplf⓪(TST consOut⓪(BNE d1⓪(MOVE.L InOutBase.fWriteLn,A0⓪(JSR (A0)⓪(JMP chkOut⓪%d1 MOVE.L InOutBase.WriteLn,A0⓪(JMP (A0)⓪%d2⓪$END⓪"END WriteLn;⓪"(*$L=*)⓪ ⓪ PROCEDURE WritePg;⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(MOVE #1,Done⓪(CLR skiplf⓪(TST consOut⓪(BNE d1⓪(MOVE.L InOutBase.fWritePg,A0⓪(JSR (A0)⓪(JMP chkOut⓪%d1 MOVE.L InOutBase.WritePg,A0⓪(JMP (A0)⓪%d2⓪$END⓪"END WritePg;⓪"(*$L=*)⓪ ⓪ ⓪ PROCEDURE GotoXY (x, y: CARDINAL);⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(CLR skiplf⓪(MOVE #1,Done⓪(TST consOut⓪(BNE d1⓪(MOVE.L InOutBase.fGotoXY,A0⓪(JSR (A0)⓪(JMP chkOut⓪%d1 MOVE.L InOutBase.GotoXY,A0⓪(JMP (A0)⓪%d2⓪$END⓪"END GotoXY;⓪"(*$L=*)⓪ ⓪ ⓪ PROCEDURE WriteString (REF s: ARRAY OF CHAR);⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(CLR skiplf⓪(MOVE #1,Done⓪(TST consOut⓪(BNE c0⓪(MOVE.L InOutBase.fWriteString,A0⓪(JSR (A0)⓪(JMP chkOut⓪%c0 MOVE.L InOutBase.WriteString,A0⓪(JMP (A0)⓪%e0⓪$END;⓪"END WriteString;⓪"(*$L=*)⓪ ⓪ ⓪ PROCEDURE prpPrt;⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(MOVE #1,Done⓪(MOVE.L A7,(A3)+⓪(MOVE #MaxChars,(A3)+⓪(TST consOut⓪(BNE c0⓪(MOVE.L InOutBase.fWriteString,A0⓪(JSR (A0)⓪(UNLK A5⓪(JMP chkOut⓪%c0 MOVE.L InOutBase.WriteString,A0⓪(JSR (A0)⓪(UNLK A5⓪$END⓪"END prpPrt;⓪"(*$L=*)⓪ ⓪ PROCEDURE prpOut;⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(MOVE.L (A7)+,A1 ; Rücksprungadr. v. Stack⓪(CLR skiplf⓪(LINK A5,#-MaxChars-1⓪(MOVE.L A7,(A3)+⓪(MOVE #MaxChars,(A3)+⓪(JMP (A1)⓪$END⓪"END prpOut;⓪"(*$L=*)⓪ ⓪ ⓪ PROCEDURE WriteCard (v:LONGCARD; width: CARDINAL);⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(JSR prpOut⓪(JSR Convert.ConvCard⓪(JMP prpPrt⓪$END;⓪"END WriteCard;⓪"(*$L=*)⓪ ⓪ PROCEDURE WriteInt (v: LONGINT; width: CARDINAL);⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(JSR prpOut⓪(JSR Convert.ConvInt⓪(JMP prpPrt⓪$END;⓪"END WriteInt;⓪"(*$L=*)⓪ ⓪ PROCEDURE WriteHex (v: WORD; width: CARDINAL);⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(JSR prpOut⓪(JSR Convert.ConvHex⓪(JMP prpPrt⓪$END;⓪"END WriteHex;⓪"(*$L=*)⓪ ⓪ PROCEDURE WriteLHex (v: LONGWORD; width: CARDINAL);⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(JSR prpOut⓪(JSR Convert.ConvLHex⓪(JMP prpPrt⓪$END;⓪"END WriteLHex;⓪"(*$L=*)⓪ ⓪ PROCEDURE WriteNum (v: WORD; base, width: CARDINAL; filler: CHAR);⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(JSR prpOut⓪(JSR Convert.ConvNum⓪(JMP prpPrt⓪$END;⓪"END WriteNum;⓪"(*$L=*)⓪ ⓪ PROCEDURE WriteLNum (v: LONGWORD; base, width: CARDINAL; filler: CHAR);⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(JSR prpOut⓪(JSR Convert.ConvLNum⓪(JMP prpPrt⓪$END;⓪"END WriteLNum;⓪"(*$L=*)⓪ ⓪ PROCEDURE WriteFix (v: LONGREAL; width, frac: CARDINAL);⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(JSR prpOut⓪(JSR Convert.ConvFix⓪(JMP prpPrt⓪$END;⓪"END WriteFix;⓪"(*$L=*)⓪ ⓪ PROCEDURE WriteFloat (v: LONGREAL; width, frac: CARDINAL);⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(JSR prpOut⓪(JSR Convert.ConvFloat⓪(JMP prpPrt⓪$END;⓪"END WriteFloat;⓪"(*$L=*)⓪ ⓪ PROCEDURE WriteEng (v: LONGREAL; width, frac: CARDINAL);⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(JSR prpOut⓪(JSR Convert.ConvEng⓪(JMP prpPrt⓪$END;⓪"END WriteEng;⓪"(*$L=*)⓪ ⓪ PROCEDURE WriteReal (v: LONGREAL; width, frac: CARDINAL);⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(JSR prpOut⓪(JSR Convert.ConvReal⓪(JMP prpPrt⓪$END;⓪"END WriteReal;⓪"(*$L=*)⓪ ⓪ ⓪ ⓪ PROCEDURE RedirectInput (REF fileName: ARRAY OF CHAR);⓪"BEGIN⓪$InOutFile.redirectInput (fileName);⓪$Done:= InOutBase.done⓪"END RedirectInput;⓪ ⓪ PROCEDURE RedirectOutput (REF fileName: ARRAY OF CHAR; append: BOOLEAN);⓪"BEGIN⓪$InOutFile.redirectOutput (fileName, append);⓪$Done:= InOutBase.done⓪"END RedirectOutput;⓪ ⓪ PROCEDURE OpenInput ( REF defExt: ARRAY OF CHAR );⓪"BEGIN⓪$InOutFile.openInput (defExt);⓪$Done:= InOutBase.done⓪"END OpenInput;⓪ ⓪ PROCEDURE OpenOutput ( REF defExt: ARRAY OF CHAR );⓪"BEGIN⓪$InOutFile.openOutput (defExt);⓪$Done:= InOutBase.done⓪"END OpenOutput;⓪ ⓪ ⓪ PROCEDURE CloseInput;⓪"BEGIN⓪$InOutBase.fCloseInput;⓪$Done:= TRUE⓪"END CloseInput;⓪ ⓪ PROCEDURE CloseOutput;⓪"BEGIN⓪$InOutBase.fCloseOutput;⓪$Done:= TRUE⓪"END CloseOutput;⓪ ⓪ ⓪ PROCEDURE Terminate;⓪"BEGIN⓪$IF consIn OR consOut THEN InOutBase.CloseWdw END;⓪$eop:= TRUE;⓪$InOutBase.fCloseOutput;⓪$InOutBase.fCloseInput⓪"END Terminate;⓪ ⓪ PROCEDURE ChgLevel (start:BOOLEAN; inChild:BOOLEAN; VAR exitCode:INTEGER);⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪(SUBQ.L #4,A3⓪(MOVE.L -(A3),D0⓪(TST D0⓪(BEQ d4⓪(SWAP D0⓪(TST D0⓪(BEQ d1⓪(ADDQ #1,level⓪%d4 RTS⓪%d1 MOVE level,D0⓪(TST consIn⓪(BNE d2⓪(CMP inLev,D0⓪(BNE d2⓪(MOVE.L InOutBase.fCloseInput,A0⓪(JSR (A0)⓪%d2 TST consOut⓪(BNE d3⓪(CMP outLev,D0⓪(BNE d3⓪(MOVE.L InOutBase.fCloseOutput,A0⓪(JSR (A0)⓪%d3 SUBQ #1,level⓪$END⓪"END ChgLevel;⓪"(*$L=*)⓪ ⓪ VAR env: EnvlpCarrier;⓪$term: TermCarrier;⓪$wsp: MemArea;⓪ ⓪ BEGIN⓪"(* Das Öffnen des Fensters muß VOR 'CatchProcessTerm' erfolgen, weil⓪#* TextWindows ggf. auch 'CatchProcessTerm' aufruft! *)⓪"InOutBase.OpenWdw (0,0);⓪"eop:= FALSE;⓪"SetEnvelope (env,ChgLevel,wsp);⓪"CatchProcessTerm (term,Terminate,wsp);⓪"consIn:= TRUE;⓪"consOut:= TRUE;⓪"skiplf:=FALSE;⓪ END InOut.⓪ ə
- (* $000019B5$FFF6A76E$FFFC497A$FFFC497A$FFFC497A$FFFC497A$FFFC497A$FFFC497A$FFFC497A$FFFC497A$FFFC497A$FFFC497A$FFFC497A$FFFC497A$FFFC497A$000004A7$FFFC497A$FFFC497A$FFFC497A$FFFC497A$FFFC497A$FFFC497A$FFFC497A$FFFC497A$FFFC497A$FFFC497A$FFFC497A$FFFC497A$FFFC497A$FFFC497A$FFFC497A$FFFC497A$FFFC497A$FFFC497A$FFFC497A$FFFC497A$00000D35$FFFC497A$FFFC497A$FFFC497A$FFFC497A$FFFC497AÇ$000009F9T.......T.......T.......T.......T.......T.......T.......T.......T.......T.......$0000097D$0000094D$000009F9$00000C8D$000008F8$00000923$00000A17$0000091E$000009FC$000007EB$000009FC$FFF1670A$00000995$FFF1670A$FFF1670A$000009C6îÇâ*)
-